<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>事件处理</title>
</head>
<body>
  <!-- 准备一个容器 -->
  <div id="test"></div>

  <!-- 导入react包 -->
  <script type="text/javascript" src="../js/react.development.js"></script>
  <script type="text/javascript" src="../js/react-dom.development.js"></script>
  <script type="text/javascript" src="../js/babel.min.js"></script>

  <script type="text/babel">
  // 创建组件
  class Buttons extends React.Component {
  /*
    (1). 通过onXXX属性指定事件处理函数（注意大小写）
        a. React使用的是自定义（合成）事件，而不是使用的原生DOM事件  ——  为了更好的兼容性
        b. React中的事件是通过事件委托方式处理的（委托给组件最外层的元素）  ——  为了高效
    (2). 通过 event.target 得到发生事件的DOM元素对象  ——  不要过度使用 ref
  */
  // 创建ref容器
  myRef = React.createRef()
  myRef2 = React.createRef()

  // 展示左侧输入框数据
  showData = ()=>{
    console.log("ref-value:", this.myRef.current.value)
    alert(this.myRef.current.value)  // 提示弹窗
  }

  // 展示右侧输入框数据
  showData2 = ()=>{
    console.log("ref2-value:", this.myRef2.current.value)
    alert(this.myRef2.current.value)  // 提示弹窗
  }

  render (){
    // 其中input1为函数变量名
    return (
      <div>
        <input ref={this.myRef} type="text" placeholder="点击按钮提示数据"/>  
        <button onClick={this.showData} type="button">点我提示左侧数据</button>
        <input ref={this.myRef2} onBlur={this.showData2} type="text" placeholder="失去焦点展示数据"/>
      </div>
    )
  }
  }

  // 渲染组件到页面
  ReactDOM.render(<Buttons />, document.getElementById("test"))

  </script>

</body>

</html>